
package com.tenentia.pcmps.swm.data.beans;

import java.util.Date;

import org.apache.commons.beanutils.BeanUtils;

import com.tenentia.pcmps.swm.Constants;

/**
 * 
 * @author tEnEntia, S.L.N.E.
 * 
 */
public class ApplicationUser {

	private Boolean active;

	private Long internalID;

	private Long roleID;

	private String electronicMailAddress;

	private String externalID;

	private String firstName;

	private String gender;

	private String lastName;

	private String password;

	private String userID;

	private Date birthDate;

	private UsersGroup group;

	private UserRole role;

	public ApplicationUser() {

		super();
	}

	@Override
	public String toString() {

		try {
			return BeanUtils.describe(this).toString();
		} catch (Exception e) {
			return Constants.STRING_EMPTY;
		}
	}

	/**
	 * @return the active
	 */
	public Boolean getActive() {

		return active;
	}

	/**
	 * @return the internalID
	 */
	public Long getInternalID() {

		return internalID;
	}

	/**
	 * @return the roleID
	 */
	public Long getRoleID() {

		return roleID;
	}

	/**
	 * @return the electronicMailAddress
	 */
	public String getElectronicMailAddress() {

		return electronicMailAddress;
	}

	/**
	 * @return the externalID
	 */
	public String getExternalID() {

		return externalID;
	}

	/**
	 * @return the firstName
	 */
	public String getFirstName() {

		return firstName;
	}

	/**
	 * @return the gender
	 */
	public String getGender() {

		return gender;
	}

	/**
	 * @return the lastName
	 */
	public String getLastName() {

		return lastName;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {

		return password;
	}

	/**
	 * @return the userID
	 */
	public String getUserID() {

		return userID;
	}

	/**
	 * @return the birthDate
	 */
	public Date getBirthDate() {

		return birthDate;
	}

	/**
	 * @return the group
	 */
	public UsersGroup getGroup() {

		return group;
	}

	/**
	 * @return the role
	 */
	public UserRole getRole() {

		return role;
	}

	/**
	 * @param active
	 *            the active to set
	 */
	public void setActive(Boolean active) {

		this.active = active;
	}

	/**
	 * @param internalID
	 *            the internalID to set
	 */
	public void setInternalID(Long internalID) {

		this.internalID = internalID;
	}

	/**
	 * @param roleID
	 *            the roleID to set
	 */
	public void setRoleID(Long roleID) {

		this.roleID = roleID;
	}

	/**
	 * @param electronicMailAddress
	 *            the electronicMailAddress to set
	 */
	public void setElectronicMailAddress(String electronicMailAddress) {

		this.electronicMailAddress = electronicMailAddress;
	}

	/**
	 * @param externalID
	 *            the externalID to set
	 */
	public void setExternalID(String externalID) {

		this.externalID = externalID;
	}

	/**
	 * @param firstName
	 *            the firstName to set
	 */
	public void setFirstName(String firstName) {

		this.firstName = firstName;
	}

	/**
	 * @param gender
	 *            the gender to set
	 */
	public void setGender(String gender) {

		this.gender = gender;
	}

	/**
	 * @param lastName
	 *            the lastName to set
	 */
	public void setLastName(String lastName) {

		this.lastName = lastName;
	}

	/**
	 * @param password
	 *            the password to set
	 */
	public void setPassword(String password) {

		this.password = password;
	}

	/**
	 * @param userID
	 *            the userID to set
	 */
	public void setUserID(String userID) {

		this.userID = userID;
	}

	/**
	 * @param birthDate
	 *            the birthDate to set
	 */
	public void setBirthDate(Date birthDate) {

		this.birthDate = birthDate;
	}

	/**
	 * @param group
	 *            the group to set
	 */
	public void setGroup(UsersGroup group) {

		this.group = group;
	}

	/**
	 * @param role
	 *            the role to set
	 */
	public void setRole(UserRole role) {

		this.role = role;
	}

}
